"""
__author__ = '霍格沃兹测试开发学社'
__desc__ = '更多测试开发技术探讨，请访问：https://ceshiren.com/t/topic/15860'
"""
import jsonpath
import requests

from interface_L3.apis.wework import Wework

'''
接口信息描述，只关注接口本身
部门管理相关接口
'''

class Department(Wework):

    def create(self, create_data):
        '''
        创建部门
        '''
        create_url = f"{self.base_url}/cgi-bin/department/create?access_token={self.token}"
        # 发送创建部门的操作
        # r = requests.request(method="post", url=create_url, json=create_data)
        req = {
            "method": "POST",
            "url": create_url,
            "json": create_data
        }
        r = self.send_api(req)
        # 打印一下创建部门的结果
        # print(f"创建部门结果为=====>{r.json()}")
        # 返回接口响应对象
        return r

    def update(self, update_data):
        '''
        更新部门
        '''
        update_url = f"{self.base_url}/cgi-bin/department/update?access_token={self.token}"
        # r = requests.request(method="POST", url=update_url, json=update_data)
        req = {
            "method": "POST",
            "url": update_url,
            "json": update_data
        }
        r = self.send_api(req)
        # print(f"更新接口响应为 {r.text}")
        return r

    def delete(self, depart_id):
        '''
        删除部门
        '''
        delete_url = f"{self.base_url}/cgi-bin/department/delete"
        # 给定 url 的参数
        params = {
            "access_token": self.token,
            "id": depart_id
        }
        # 发送删除部门的操作
        # r = requests.get(url=delete_url, params=params)
        req = {
            "method": "GET",
            "url": delete_url,
            "params": params
        }
        r = self.send_api(req)
        # 打印一下删除部门的结果
        # print(f"删除接口响应为 {r.text}")
        return r

    def get(self):
        '''
        查询部门（获取子部门 id 列表）
        '''
        url = f"{self.base_url}/cgi-bin/department/simplelist?access_token={self.token}"
        req = {
            "method": "GET",
            "url": url
        }
        r = self.send_api(req)
        # print(f"查询接口响应为 {r.text}")
        return r

    def clear(self):
        '''
        清理已经存在的所有的部门
        '''
        # 查询当前存在的部门
        r = self.get()
        # 获取所有部门 id 的列表
        id_list = jsonpath.jsonpath(r.json(), "$..id")
        # 循环列表
        for i in id_list:
            if i != 1:
                # 调用删除接口
                self.delete(i)